perm filename ARPA.74B[DOC,TOB] blob sn#125610 filedate 1974-10-17 generic text, type T, neo UTF8
00100			ROBOTICS
00200	
00300	We  have  been  concerned  with  building  up  advanced  manipulation
00400	capabilities,  and  with  representation  and  descriptive techniques
00500	which underlie both visual perception and programming of programmable
00600	assembly devices.
00700	
00800			MANIPULATION
00900	
01000	The  robotics  group  has  established leadership in manipulation and
01100	notes particularly advances in two arm synchronized manipulation, and
01200	in design of a new hand language for manipulation.
01300	
01400	The  completion  last  year  of automated assembly of a water pump by
01500	Paul and Bolles [Bolles] marked a change in direction of  manipulator
01600	research.   In the previous phase of system building, Paul [Paul] had
01700	developed software for control of the Scheinman arm [Scheinman] using
01800	touch  (one  switch  per  finger  with 10 gram sensitivity) and force
01900	(measured from joint motor currents,  about  350  gram  sensitivity).
02000	The  pump  assembly  task  showed the use of touch, force, tools, and
02100	vision in a complete system task. The new emphasis  has  been  toward
02200	application  of  the  system  to  programming  of repetitive assembly
02300	tasks, and toward executing tasks chosen to develop new  manipulation
02400	abilities.
02500	
02600	Our  conception  of  the assembly task as a planning task carried out
02700	once on a large system, and a small repetitive execution  task  seems
02800	suited  to  industrial  assembly.       The plan can be intelligently
02900	tailored to the individual task; the small system repeatedly executes
03000	a  plan and modifies the plan at runtime to take into account part to
03100	part variations.
03200	
03300	In order to provide this runtime modification  it  was  necessary  to
03400	move the arm solution routines from the planning stage to the runtime
03500	system and to communicate positions in  terms  of  rectangular  table
03600	coordinates instead of in terms of arm joint angles. By communicating
03700	part positions in terms of rectangular coordinates it was possible to
03800	translate  and  rotate  sets  of  positions as necessary to adapt the
03900	manipulator  to  each  actual  part  and  its  relative   manipulator
04000	placement.
04100	
04200	When this work was completed, Bolles programmed automatic assembly of
04300	the piston-crankshaft subassembly of a  two-stroke  gasoline  engine,
04400	allowing  considerable  variation in work piece positioning.   Bolles
04500	programmed tool changing.  The arm automatically removes one tool and
04600	mounts  another  from  a  set  of  socket tools for an automatic tool
04700	driver.   A second arm was interfaced to our computer. Paul developed
04800	a  system  in  which  two  arms could be run in synchronization.   He
04900	programmed assembly of a hinge, using two arms. (These  examples  are
05000	recorded  in  a  film, [Pingle, Paul and Bolles, "Automated Assembly,
05100	Three Short Examples"]). To explore arm dynamics,  Finkel  programmed
05200	throwing objects into bins sorted by size.
05300	
05400	These  tasks  were  carried  out  in  the  hand language WAVE [Paul].
05500	Programming in a hand language  gave  a  generality  which  might  be
05600	described  as:    given that we had carried out one task, programming
05700	assembly of a similar object  would  be  simple.        For  example,
05800	programming  assembly  of  a  generator  would require about 10 hours
05900	work, following the pump assembly.  A set of  macros  were  developed
06000	which  were  applicable  to a variety of tasks:  put a pin in a hole,
06100	insert a screw.  About 8 hours are required to program a macro of the
06200	complexity of inserting a screw. The hand language has made it simple
06300	to teach students how to program the arm.    In  a  robotics  course,
06400	students  programmed "sword in stone", inserting a shaft into a hole.
06500	The language WAVE is on the level of assembler code.
06600	
06700	In order to take advantage  of  more  than  one  manipulator,  it  is
06800	necessary  that  the  manipulators  can be run simultaneously, either
06900	performing independent subtasks or acting together.     The  existing
07000	language,  Wave,  was not designed to incorporate parallel operation,
07100	and was inadequate to take  advantage  of  the  runtime  modification
07200	feature  already  described.     A new language was needed to specify
07300	structures and attachments of parts, and to provide a suitable syntax
07400	in  which  to  express  parallel operation.  It was also necessary to
07500	incorporate general expression  evaluation,  including  matrices  and
07600	vectors.    A new language design was undertaken to incorporate these
07700	features.  Superficially, it resembles  Algol,  as  it  provides  for
07800	structured programming and block structure.
07900	
08000	Paul,  Finkel, Bolles and Taylor have begun a new hand language, HAL.
08100	The effort began as a higher  level  language  version  of  WAVE,  to
08200	include  coordinated motion of two arms.  The design was broadened to
08300	include some strategy generation.     The system  is  made  partially
08400	model-based  (versus  procedure-based  as  WAVE, ALGOL, etc).    Some
08500	degree of  automatic  generation  of  sequences  for  non-independent
08600	operations whose order is important, has been included in the design.
08700	In order to carry on the next stage of  generalization  beyond  WAVE,
08800	the system must maintain models of its world.  Consider modifying the
08900	pump assembly program to assemble a generator.  An expert  programmer
09000	is  needed to modify the program, while for a model-based system, the
09100	engineer could input a new model (presumably from a previous  design)
09200	and  allow  the  system  to  do the low level interfacing. The system
09300	could not perform that interfacing if given only low level trajectory
09400	commands.   We  regard  this  system  as a first level of model-based
09500	system.   A major technical  advance  will  be  coordinated  two  arm
09600	motion, as opposed to independent two arm motion.   An important part
09700	of the design process has been to express a number of tasks (gedanken
09800	experiments)   in   the   new  language.    The  design  of  HAL  was
09900	three-fourths completed during the period of this progress report.
10000	
10100	New work has gone into touch sensor development.  A new  sensor  with
10200	adequate  sensitivity and small size was built and tested by Perkins.
10300	The sensor seems adequate for use in  task  execution,  but  requires
10400	more development in packaging and mounting on usable fingers.
10500	
10600	A  new  collision  avoidance  package  has been programmed by Widdoes
10700	[Widdoes]. The package finds a  collision-free  path  for  the  first
10800	three  joints  of  the  arm,  using an interesting strategy.      The
10900	previous collision avoidance  program  [Pieper]  used  a  very  local
11000	search around objects and was very time-consuming.
11100	
11200	During the period covered in this report, we have begun conversion of
11300	arm hardware to a PDP-11/45 and begun converting to  a  new  hand/eye
11400	table which allows room for two arm manipulation.
11500	
11600	
     

00100			VISION
00200	
00300	The theme of our work in visual perception  of  complex  objects  has
00400	been  DESCRIPTION  AND  NOT CLASSIFICATION.   We have concentrated on
00500	building  up  capabilities  for  generating  structured  descriptions
00600	useful  in a rich universe of objects. This project has been extended
00700	by Nevatia [Nevatia], with programs which recognize  objects  of  the
00800	complexity  of  a  doll, glove, toy horse, or hammer.    The work has
00900	included new, stable hardware  for  the  laser  triangulation  system
01000	[Agin].   The  programs  use  depth  data from the laser system, find
01100	boundaries of continuous surfaces, and make descriptions  of  armlike
01200	parts  according  to  a  representation  based on "generalized cones"
01300	[Binford].   Other groups have begun to use  special  cases  of  such
01400	representations.   The   programs   then   make  complete  structured
01500	descriptions of objects as a part/whole graph of parts and  relations
01600	of  parts at joints. Compact summary descriptions are abstracted from
01700	complete object descriptions and used  to  index  into  a  structured
01800	visual  memory  of  models  of  previously  seen  objects to locate a
01900	subclass of model similar to the test  object.  The  index  procedure
02000	limits  comparison  of  the test object description to relatively few
02100	models from memory, even with a large visual memory of  many  objects
02200	(although  only about six objects were used).   Models in memory were
02300	descriptions  made  by  the  program  of  previously  seen   objects,
02400	sometimes modified by hand.  The learning ability of such a system is
02500	clear.   An important feature of the description matching process  is
02600	that  it  depends  on  generating structured symbolic descriptions of
02700	differences between test object description and the model.
02800	
02900	The descriptions themselves are intuitively familiar for  humans,  so
03000	that  the  decisions of the program are easy to understand and debug.
03100	Although a great deal more work is  necessary  for  that  system,  it
03200	represents  a  first  and  significant  step  in such description and
03300	recognition, particularly since it can tolerate moderate obscuration.
03400	The  same techniques are applicable to edge images from TV data; they
03500	give good descriptive ability for that domain.  However, that is only
03600	a  small  part  of the necessary system for analysis of TV images and
03700	although useful, in no way  resembles  a  solution  to  that  complex
03800	problem.
03900	
04000	It  is  difficult  for  humans  to  perform manipulation tasks from a
04100	single TV image, without stereo.  We intend to make considerable  use
04200	of  stereo  in applications of vehicle navigation and visual feedback
04300	for assembly.  Hannah [Hannah] has demonstrated  some  techniques  of
04400	stereo  matching  for  stereo  pairs  with  moderate stereo angle, 10
04500	degrees, without calibration information.  By matching a  minimum  of
04600	six  points in the two images, it was possible to obtain the relative
04700	calibration of the two cameras.     Further  search  was  limited  by
04800	calibration  informaion.       Techniques  were  developed  to  match
04900	corresponding areas  in  outdoor  pictures  from  features  including
05000	color,  mean and variance of intensity.  A program was able to define
05100	regions  bounded  by  depth  discontinuities.     Thomas  and  Pingle
05200	[Thomas] have appplied motion parallax to simple scenes.   They limit
05300	attention to a few points defined by variance or edge measures. These
05400	points are tracked as the scene is rotated on a turntable, equivalent
05500	to moving the camera.  The program requires only about 1  second  per
05600	frame, using the SPS-41 computer. Although the research was performed
05700	on scenes of blocks, it is not limited to such scenes. The  mechanism
05800	for selecting points of interesst would be inadequate for scenes with
05900	texture, however. Ganapathy [Ganapathy] has developed techniques  for
06000	wide  angle stereo matching in scenes of blocks. These programs use a
06100	variety of conditions of the form that  planes  remain  planar  under
06200	matching.
06300	
06400	Bullock  [Bullock] has made a systematic study of available operators
06500	for description of texture, and made a library of standard  textures.
06600	His  informal  conclusions  are  that spatial domain descriptions are
06700	necessary, and that known techniques are very weak.
06800	
06900	We have continued our study of techniques for visual feedback to deal
07000	with  scenes  with  realistic  contrast (not just black vs white) and
07100	with realistic complexity (curved objects).   Perkins  [Perkins]  has
07200	made  a  program  which  finds  corners  for visual feedback in block
07300	stacking. Although block stacking itself is of little  interest,  the
07400	program  is  interesting  for  its ability to function with realistic
07500	contrast levels (no special preparation of scene) and interesting for
07600	its global edge finding strategy.   Perkins also made a program which
07700	found elliptic curves among edge points  from  the  Hueckel  operator
07800	[Hueckel]. The program was able to identify cylinders.
07900	
08000	Binford  has  made  a  beginning  on  a language for vision research.
08100	Previously, the  laboratory  has  built  a  hand/eye  monitor  system
08200	[Feldman]  to  systematize  cooperating  routines  at  a job level; a
08300	library of simple procedures has been implemented [Pingle].    It has
08400	been  found  that  the  job  level  is  too  coarse  to be useful for
08500	accomplishing  our  objectives:   to  allow  research  to  build   on
08600	previously  built  data  structures  and  modules;  to allow a common
08700	vocabulary.       The  new  effort  is  not  predominantly  a  system
08800	software  effort,  but  a  scientific  effort,  aimed  at providing a
08900	language in which strategies can be expressed. Our experience is that
09000	it  is  difficult  for humans to program in LISP or SAIL, and that we
09100	cannot reasonably expect strategy programs to be  expressed  at  that
09200	low  level of language.   The language will be embedded in SAIL.  Our
09300	previous work in representation of shape has been significant; now we
09400	are   extending   the  study  of  representation  to  visual  program
09500	structure, including intermediate internal structures. Our experience
09600	with the hand language is that this is a valuable step.
     

00100			ASSEMBLY STRATEGIES
00200	
00300	Our work at programming manipulation sequences applies to programming
00400	the  class  of programmable assembly devices.  The goal is to program
00500	at the level of assembly instruction manuals:  insert  shaft  B  into
00600	hole  C.   That  is  to  go from a high level program to a program in
00700	terms of device motions, including  force  and  control  information.
00800	There  is  an  enormous  scope  for  such  applications;  the ease of
00900	programming assembly device is crucial  to  their  wide  application,
01000	from  high  volume  special  automation to low volume general purpose
01100	devices.  The effort has produced outline programs  for  assembly  of
01200	the  water  pump (without manipulation programming) by Taylor, and by
01300	Luckham [Luckham].  A typical sequencing task is to choose a sequence
01400	which  does not involve putting down the tool and picking it up again
01500	in pulling out the guide pins and inserting screws to fasten the pump
01600	cover.    As   another   facet   of  compatible  sequences,  semantic
01700	constraints  such  as  x  on  y  are  translated  into   mathematical
01800	constraints;  Taylor  has  progammed  a  linear  constraint  solution
01900	package to solve the resulting mathematical conditions.